5. Алгоритм навигации робота
Автор
In [ ]:
cd( @__DIR__ )
include( "room_functions.jl" );
gr();
In [ ]:
function шагаем( положение, карта )
направление = CartesianIndex( 1, 0 )
точка_впереди = положение + направление
if карта[ точка_впереди ] == false
положение = точка_впереди
end
return положение
end;
In [ ]:
карта, старт = gen_room( 12, 10, 4, 3 );
положение = CartesianIndex( старт... );
путь = [];
In [ ]:
положение = шагаем( положение, карта )
push!( путь, Tuple(положение) )
heatmap( карта', yflip=true, c=:grays, aspect_ratio=:equal, leg=:false )
spy!( карта', c=:reds, markersize=3 )
scatter!( [старт[1]], [старт[2]], shape=:xcross )
plot!( first.(путь), last.(путь) )
scatter!( [положение[1]], [положение[2]] )
Out[0]: